/*!
 * FitVids 1.0.5
 *
 * Copyright 2011, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
 * Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
 * Released under the WTFPL license - http://sam.zoy.org/wtfpl/
 *
 * Date: Thu Sept 01 18:00:00 2011 -0500
 */

(function($) {

	$.fn.fitVids = function(options) {
		var settings = {
			customSelector: null
		};

		var div = document.createElement('div'),
			ref = document.getElementsByTagName('base')[0] || document.getElementsByTagName('script')[0];

		div.className = 'fit-vids-style';
		div.innerHTML = '&shy;<style>          \
			.fluid-width-video-wrapper {       \
				 width: 100% !important;       \
				 position: relative;           \
				 padding: 0;                   \
			}                                  \
											   \
			.fluid-width-video-wrapper iframe, \
			.fluid-width-video-wrapper object, \
			.fluid-width-video-wrapper embed { \
				 position: absolute;           \
				 top: 0;                       \
				 left: 0;                      \
				 width: 100% !important;       \
				 height: 100% !important;      \
			}                                  \
		</style>';

		ref.parentNode.insertBefore(div, ref);

		if (options) {
			$.extend(settings, options);
		}

		// Fix allVideo player fixed width/height
		$('.avPlayerContainer').each(function() {
			var $this = $(this);
			var width = $this.css('width');
			var height = $this.css('height');

			if (parseInt(width, 10) > 0)
			{
				$this.css('max-width', width);
				$this.css('width', '');
			}

			if (parseInt(height, 10) > 0)
			{
				$this.css('max-height', height);
				$this.css('height', '');
			}
		});

		return this.each(function() {
			var selectors = [
				"iframe[src*='player.vimeo.com']",
				"iframe[src*='www.youtube.com']",
				"iframe[src*='www.kickstarter.com']",
				"object",
				"embed"
			];

			if (settings.customSelector)
			{
				selectors.push(settings.customSelector);
			}

			var $allVideos = $(this).find(selectors.join(','));

			$allVideos.each(function() {
				var $this = $(this);

				if (this.tagName.toLowerCase() === 'embed' && ($this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length))
				{
					return;
				}

				var height = this.tagName.toLowerCase() === 'object' || $this.attr('height') ? $this.attr('height') : $this.height(),
					aspectRatio = height / $this.width();

				if (!$this.attr('id'))
				{
					var videoID = 'fitvid' + Math.floor(Math.random() * 999999);
					$this.attr('id', videoID);
				}

				$this.wrap('<div class="fluid-width-video-wrapper"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100) + "%");
				$this.removeAttr('height').removeAttr('width');
			});
		});
	};
})(jQuery);
